// function hmAxios(config) {
//   return new Promise((resolve, reject) => {
//     const xhr = new XMLHttpRequest()

//     if (config.params) {
//       const params = new URLSearchParams(config.params)
//       const query = params.toString()
//       config.url += `?${query}`
//     }
//     xhr.open(config.method || 'GET', config.url)

//     xhr.addEventListener('loadend', () => {
//       if (xhr.status >= 200 && xhr.status < 300) {
//         resolve(JSON.parse(xhr.response))
//       } else {
//         reject(new Error(xhr.response))
//       }
//     })
//     if (config.data) {
//       xhr.setRequestHeader('Content-Type', 'application/json')
//       xhr.send(JSON.stringify(config.data))
//     } else {
//       xhr.send()
//     }
//   })
// }

function myAxios (config) {
  // console.log(config, 777);
  return new Promise((resolve, reject) => {
    /* 处理query传参====将params中的参数拼接到url后面即可 */
    if (config.params) {
      const query = new URLSearchParams(config.params)
      console.log(query.toString(), 888);// panme=湖北省&cname=武汉市
      //  http://hmajax.itheima.net/api/city?panme=湖北省&cname=武汉市
      config.url += `?${query.toString()}`//http://hmajax.itheima.net/api/city?panme=湖北省&cname=武汉市
    }
    // config.url=config.url+'?panme=湖北省&cname=武汉市'
    /* XMLHttpRequest 对象 */
    /* 1、创建一个xml对象 */
    const xhr = new XMLHttpRequest()
    /*  2、设置请求方法和地址*/
    // xhr.open('请求方法', '请求地址')
    xhr.open(config.method || 'get', config.url)
    /* 3、监听请求什么时候完成 */
    xhr.addEventListener('loadend', () => {
      /* 获取数据 */
      // console.log(xhr, 23);
      // console.log(JSON.parse(xhr.response), 1111);
      // resolve(JSON.parse(xhr.response))
      if (xhr.status >= 200 && xhr.status < 300) {
        // 表示请求成功
        resolve(JSON.parse(xhr.response))
      } else {
        // 表示请求失败
        reject(new Error(xhr.response))
      }
    })
    /* 4、请求发送 */
    /* 处理post请求的参数 */
    if (config.data) {
      /*
      1、设置请求头
      2、在send函数中添加请求体参数
      */
      xhr.setRequestHeader('Content-Type', 'application/json')
      xhr.send(JSON.stringify(config.data)) //请求体参数
    } else {
      xhr.send()
    }
    // xhr.send()
  })
}